package com.字符串;

public class Demo2 {

	/** 案例1中，通过变量和字符串拼接，java是需要先到内存找变量对应的值，才能进行完成字符串拼接的工作，这种方式java编译器没法优化，只能走StringBuilder进行拼接字符串，然后调用toString方法，
	 *  当然返回的结果和常量池中的111这个字符串的内存地址是不一样的，因此结果为false。
		案例2中，直接在表达式里写值，java不用根据变量去内存里找对应的值，可以在编译的时候直接对这个表达式进行优化，优化后的表达式从 "111" + "" 直接变成了 "111" ，两个String类型的变量都指向了
		常量池的111字符串，因此结果为true;
	 * @param args
	 */
	public static void main(String[] args) {
		String str = "111";
		String a = "111";
		String str2 = "111" + "";
		String str3 = a + "";
		System.out.println(str == str2); // true
		System.out.println(str == str3); // false
	}
	
}
